package com.zatech.cgnci.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zatech.cgnci.project.dto.*;
import com.zatech.cgnci.project.entity.CgnciAnnualInsurePlanDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zatech.cgnci.project.vo.ApprovalRecordVO;
import com.zatech.cgnci.project.vo.CgnciAnnualInsurePlanPageVO;
import com.zatech.cgnci.project.vo.CgnciAnnualInsurePlanPolicyVO;
import com.zatech.cgnci.project.vo.CgnciAnnualInsurePlanMainVO;

import java.util.List;

/**
 * <p>
 * 方案信息主表 服务类
 * </p>
 *
 * @author Generator
 * @since 2024-12-17
 */
public interface CgnciAnnualInsurePlanService extends IService<CgnciAnnualInsurePlanDO> {

    IPage<CgnciAnnualInsurePlanPageVO> pageInsurePlan(CgnciAnnualInsurePlanQueryDTO cgnciAnnualInsurePlanQueryDTO);

    CgnciAnnualInsurePlanMainVO detail(Long inPlanId);

    CgnciAnnualInsurePlanDO saveOrUpdateAnnualInsurePlan(CgnciAnnualInsurePlanSaveOrUpdateDTO updateDTO);

    CgnciAnnualInsurePlanDO nextEdit(Long inPlanId);

    void submit(FlowTaskSubmitDTO build);

    void approve(FlowTaskApprovalDTO flowTaskDTO);

    void back(FlowTaskBackDTO flowTaskDTO);

    void signOut(Long inPlanId);

    List<ApprovalRecordVO> log(Long inPlanId);

    List<CgnciAnnualInsurePlanPolicyVO> listPlanPolicy(String annual, String riskSubTypeCodes);
}
